This disclosure relates generally to dynamically sharing a fabric and, more specifically, to dynamically sharing a fabric to facilitate off-chip communication for multiple on-chip units.
In the electronics field, a multiplexer is a device that selects from among multiple inputs (or input groups) and forwards a selected input (or selected input group) to an output (or output group). In general, a multiplexer that has 2n inputs has ‘n’ select lines, which are used to select which input to route to the output. A multiplexer facilitates sharing a resource, for example an input/output (I/O) pin, between inputs and/or outputs instead of requiring a resource for each input and/or output. In general, a demultiplexer is a device that has a single input (or input group) which is routed to one of multiple outputs (or output groups). A multiplexer can be viewed as a multiple-input/single-output switch and a demultiplexer can be viewed as a single-input/multiple output switch.
A number of prior art references disclose devices that share pins of an integrated circuit (or chip) via multiplexing. For example, U.S. Patent Application Publication No. 2006/0101173 discloses an advanced technology attachment (ATA) device that shares a portion of its pins with other peripheral devices. As another example, U.S. Patent Application Publication No. 2005/0223121 disclose devices that multiplex among ‘M’ pin groups, where N>M. As yet another example, U.S. Patent Application Publication No. 2006/0132178 discloses multiple devices, each of which has dedicated pins that share a pin group.
In computing and telecommunications, a protocol is a formal description of a message format and rules for exchanging messages. A protocol may include signaling, authentication, and error detection and correction capabilities. In general, a protocol defines rules governing syntax, semantics, and synchronization of a message. A protocol may be implemented by hardware, software, or a combination of hardware and software. At a lowest level, a protocol defines hardware connection behavior.